From 22fa07d55d0831f27a648b179fda8bf07f4310c0 Mon Sep 17 00:00:00 2001 From: Matthias Clasen Date: Tue, 3 Jul 2007 17:22:24 +0000 Subject: [PATCH] Report errors about integer parsing back up. (#452988) 2007-07-03 Matthias Clasen * gtk/gtkcelllayout.c (attributes_text_element): Report errors about integer parsing back up. (#452988) * tests/buildertest.c: Add an extra check. svn path=/trunk/; revision=18364 --- ChangeLog | 7 +++++++ gtk/gtkcelllayout.c | 20 ++++++++++++++++++-- tests/buildertest.c | 1 + 3 files changed, 26 insertions(+), 2 deletions(-) diff --git a/ChangeLog b/ChangeLog index d28db1f463..71305a38e1 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,10 @@ +2007-07-03 Matthias Clasen + + * gtk/gtkcelllayout.c (attributes_text_element): Report + errors about integer parsing back up. (#452988) + + * tests/buildertest.c: Add an extra check. + 2007-07-03 Matthias Clasen * gtk/gtkbutton.c (gtk_button_construct_child): Don't leave diff --git a/gtk/gtkcelllayout.c b/gtk/gtkcelllayout.c index 9fba57bf0f..7ec9356945 100644 --- a/gtk/gtkcelllayout.c +++ b/gtk/gtkcelllayout.c @@ -17,9 +17,10 @@ * Boston, MA 02111-1307, USA. */ +#include #include #include -#include +#include #include "gtkcelllayout.h" #include "gtkintl.h" #include "gtkalias.h" @@ -346,12 +347,27 @@ attributes_text_element (GMarkupParseContext *context, GError **error) { AttributesSubParserData *parser_data = (AttributesSubParserData*)user_data; + glong l; + gchar *endptr; if (!parser_data->attr_name) return; + + errno = 0; + l = strtol (text, &endptr, 0); + if (errno || endptr == text) + { + g_set_error (error, + GTK_BUILDER_ERROR, + GTK_BUILDER_ERROR_INVALID_VALUE, + "Could not parse integer `%s'", + text); + return; + } + gtk_cell_layout_add_attribute (parser_data->cell_layout, parser_data->renderer, - parser_data->attr_name, atoi (text)); + parser_data->attr_name, l); g_free (parser_data->attr_name); parser_data->attr_name = NULL; } diff --git a/tests/buildertest.c b/tests/buildertest.c index 86e4d9fe46..a402d87677 100644 --- a/tests/buildertest.c +++ b/tests/buildertest.c @@ -1038,6 +1038,7 @@ gboolean test_treeview_column (void) g_return_val_if_fail (treeview, FALSE); g_return_val_if_fail (GTK_IS_TREE_VIEW (treeview), FALSE); column = gtk_tree_view_get_column (GTK_TREE_VIEW (treeview), 0); + g_return_val_if_fail (GTK_IS_TREE_VIEW_COLUMN (column), FALSE); g_return_val_if_fail (strcmp (gtk_tree_view_column_get_title (column), "Test") == 0, FALSE); -- 2.30.2